//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
#include "cmath"
#include<iomanip>
#include "string"
#include "map"
#include "list"
struct Sol{
    std::vector<std::vector<int>> mat;
    std::vector<int> selected;
//    std::vector<int> ress;
    int res;
    int num=0;
    int num_w=0;
    int w;
    int cur_k=0;
    int k;
    bool can_select(int i){
        if(num_w==0){
            return true;
        }
//        int num1=num;
//        int num_w1=num_w;
//        while(num_w1){
            if(mat[num%10][i]==0){
                return false;
            }
//            num_w1--;
//            num1/=10;
//        }
        return true;
    }
    void dfs(){
        if(num_w==w){
            cur_k++;
            if(k==cur_k){
                res=num;
            }
//            ress.push_back(num);
//            res.push_back(num);
            return;
        }
        for(int i=0;i<w;i++){
            if(!selected[i]
            &&
                    can_select(i)
            ){
                selected[i]=1;
                num*=10;
                num+=i;
                num_w+=1;
                dfs();
                if(k==cur_k){
                    return;
//                    res=num;
                }
                num_w--;
                num/=10;
                selected[i]=0;
            }
        }
    }
    void handle(int n,int k1
            ){
        w=n;
        k=k1;
        std::vector<int> line(n);
        selected.resize(n);
//        stack.reserve(n);

        for(int i=0;i<n;i++){
            for (int j = 0; j < n; ++j) {
                std::cin>>line[j];
            }
            mat.push_back(line);
        }
        dfs();
        std::vector<int> stack;
        stack.reserve(n);
        for(int i=0;i<n;i++){
            stack.push_back(res%10);
            res/=10;
        }

        for(int i=stack.size()-1;i>=0;i--){
            if(i<stack.size()-1){
                printf(" ");
            }
            printf("%d",stack[i]);
        }
        printf("\n");
//        printf("%d\n",res);
    }
};
int main(){
//    int a,b,c;
    float a,b,c,d;
    int e;
    while(std::cin>>a>>b){
        Sol().handle(a,b);
    }

    return 0;
}